package com.chilly.other.atomic;

import java.util.concurrent.atomic.AtomicInteger;

/**
 * 基本数据类型原子类的优势
 *
 * Created by Chilly Cui on 2020/12/30.
 */
public class MultiThreadEnsureSafeDemo {


    //①多线程环境不使用原子类保证线程安全（基本数据类型）
    class Test {
        private volatile int count = 0;
        public synchronized void increment(){
            count++;
        }
        public int getCount(){
            return count;
        }
    }


    //②多线程环境使用原子类保证线程安全（基本数据类型）
    class Test2{
        private AtomicInteger count = new AtomicInteger(0);
        public void increment(){
            count.incrementAndGet();
        }
        //使用AtomicInteger之后，不需要加锁，也可以实现线程安全。
        public int getCount(){
            return count.get();
        }
    }

}
